跳到主要内容

Chevereto 图床网站伪静态规则

规则内容

# Chevereto for nginx rules

location ~* /(importing|app|content|lib)/.*\.(po|php|lock|sql)$ {
deny all;
}

location ~ \.(jpe?g|png|gif|webp)$ {
log_not_found off;
error_page 404 /content/images/system/default/404.gif;
}

location ~* /.*\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
add_header Access-Control-Allow-Origin "*";
}

location / {
index index.php;
try_files $uri $uri/ /index.php$is_args$query_string;
}


# END Chevereto nginx rules

整体概述

这段配置主要是针对名为 Chevereto 的应用程序(可能是图片分享、管理类应用等,从规则推测与资源管理和访问控制相关)在 Nginx 服务器上进行的一系列路径和资源访问相关的设置,通过不同的location块来定义对不同类型的文件、目录路径以及整体请求的处理方式。

具体规则解释

1. 禁止访问特定目录下特定类型文件的规则

location ~* /(importing|app|content|lib)/.*\.(po|php|lock|sql)$ {
deny all;
}
  • location ~*:这是一个使用了不区分大小写匹配(~*)的location指令。它会匹配满足后面正则表达式条件的请求路径。
  • /(importing|app|content|lib)/.*\.(po|php|lock|sql)$:这是一个正则表达式,用于匹配请求路径。它表示匹配以importingappcontentlib这几个目录之一开头(因为在括号内使用了|进行多选),然后接着任意字符(.*),最后以.po.php.lock.sql这些文件扩展名之一结尾的请求路径。
  • deny all;:一旦请求路径匹配到上述正则表达式,就会执行这个操作,即拒绝所有对这些匹配路径下对应文件的访问请求。这可能是出于安全考虑,防止对这些关键目录下特定类型的文件进行不当访问。

2. 处理图片文件相关的规则

location ~ \.(jpe?g|png|gif|webp)$ {
log_not_found off;
error_page 404 /content/images/system/default/404.gif;
}
  • location ~:这里使用了区分大小写的正则表达式匹配(~)的location指令,用于匹配特定扩展名的图片文件请求路径。
  • \.(jpe?g|png|gif|webp)$:这是一个正则表达式,用于匹配以.jpg.jpegjpe?g表示jpege可有可无,匹配jpgjpeg两种扩展名)、.png.gif.webp这些图片文件扩展名结尾的请求路径。
  • log_not_found off;:当请求的图片文件不存在时,关闭记录 “文件未找到” 的日志信息。这样可以避免在大量图片请求中,因为个别不存在的图片导致日志文件被大量无用信息填满。
  • error_page 404 /content/images/system/default/404.gif;:如果请求的图片文件不存在(触发 404 错误),则将错误页面重定向到/content/images/system/default/404.gif这个图片文件,以向用户展示一个自定义的 404 图片提示。

3. 处理字体及样式、脚本文件相关的规则

location ~* /.*\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
add_header Access-Control-Allow-Origin "*";
}
  • location ~*:同样是不区分大小写的正则表达式匹配的location指令,用于匹配特定类型文件的请求路径。
  • /.*\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$:这个正则表达式匹配以任意字符开头(.*),然后接着以.ttf.ttc.otf.eot.woff.woff2font.css.css.js这些字体、样式文件(如.css)或脚本文件(如.js)扩展名结尾的请求路径。
  • add_header Access-Control-Allow-Origin "*";:对于匹配到上述路径的请求,会在响应头中添加一个Access-Control-Allow-Origin字段,并设置其值为*。这意味着允许来自任何源的跨域请求,通常用于处理字体、样式和脚本文件在不同域名或源之间的正确加载和使用,防止出现跨域访问限制导致的加载问题。

4. 处理根目录及其他未匹配请求的规则

location / {
index index.php;
try_files $uri $uri/ /index.php$is_args$query_string;
}
  • location /:定义了对根目录(以及所有子目录,因为是根目录的设置)下请求的处理规则。
  • index index.php;:指定当请求的是一个目录时,默认查找并使用index.php作为该目录的索引文件来提供服务。例如,当用户访问一个目录路径且未指定具体文件时,Nginx 会尝试提供index.php文件的内容。
  • try_files $uri $uri/ /index.php$is_args$query_string;:这部分和前面介绍过的try_files指令类似。首先尝试查找$uri对应的文件,如果不存在就尝试查找$uri/对应的目录(并查找目录下的默认文件,这里默认是index.php),如果还是找不到,就将请求重写为指向/index.php并带上原始请求的参数($is_args表示是否有查询参数,如果有则带上$query_string,即完整的查询参数内容),以便由index.php来处理请求,可能是由基于 PHP 的 Chevereto 应用程序核心代码来处理动态请求并生成相应内容。

通过以上这些不同的location块设置,Nginx 可以针对 Chevereto 应用程序的各种资源类型、访问场景等进行精细化的管理和处理,以确保应用程序的正常运行、资源的合理访问以及提供较好的用户体验等。